const blogDao = require("../dao/blogDao")
const tagDao = require("../dao/tagDao")
const tagBlogMapping = require('../dao/tagBlogMappingDao')
const timeUtil = require("../util/timeUtil")
const respUtil = require("../util/respUtil")
const url = require('url');
const path = new Map();

function queryAllTag(req, res){
    tagDao.queryAllTag(function(result) {   
        res.writeHead(200);
        res.write(respUtil.writeResult("success", "查询成功", result))
        res.end();
    })
}
path.set("/queryAllTag", queryAllTag);

function queryTag(req, res) {
    var params = url.parse(req.url, true).query;
    tagDao.queryTag(params, function(result) {
        
        res.writeHead(200);
        res.write(respUtil.writeResult("success", "查询成功", result))
        res.end();
    })
}
path.set("/queryTag", queryTag);

function queryBlogIdByTagId(req, res) {
 
    tagDao.queryBlogIdByTagId(function(result) {
        
        res.writeHead(200);
        res.write(respUtil.writeResult("success", "查询成功", result))
        res.end();
    })
}
path.set("/queryBlogIdByTagId", queryBlogIdByTagId);

function queryByTag(req, res) {
    var params = url.parse(req.url, true).query;
    tagDao.queryTag(params.tag, function(result){
        if(result == 0 || result.length == 0) {
            res.writeHead(200);
            res.write(respUtil.writeResult("success", "查询成功", result))
            res.end();
        } else {
            tagBlogMapping.queryByTag(result[0].id, parseInt(params.page), parseInt(params.pageSize), function(result) {
                // console.log(result);
                var blogList = [];
                for(var i = 0; i < result.length; i ++) {
                    blogDao.queryBlogById(result[i].blog_id, function (result2) {
                        blogList.push(result2[0]);
                        
                    })
                }
                getResult(blogList, result.length, res);
            })
        }
    })
    
}


path.set("/queryByTag", queryByTag);

function getResult(blogList, len, res) {
    if (blogList.length < len) {
        setTimeout(function () {
            getResult(blogList, len, res);
        }, 10);
    } else {
        for (var i = 0; i < blogList.length; i ++) {
            blogList[i].content = blogList[i].content.replace(/<img[\w\W]*">/, "");
            blogList[i].content = blogList[i].content.replace(/<[\w\W]{1,5}>/g, "");
            blogList[i].content = blogList[i].content.substring(0, 300);
        }
        res.writeHead(200);
        res.write(respUtil.writeResult("success", "查询成功", blogList))
        res.end();
    }
}

function queryByTagCount(req, res) {
    var params = url.parse(req.url, true).query;
    console.log(params);
    tagDao.queryTag(params.tag, function (result) {
        console.log(result);
        tagBlogMapping.queryByTagCount(result[0].id, function(result) {
        
            res.writeHead(200);
            res.write(respUtil.writeResult("success", "查询成功", result))
            res.end();
        })
    })
}
path.set("/queryByTagCount", queryByTagCount);

module.exports.path = path;
